From 4d5b1a7c3383162f7ebd54665fcd0d27c6c50fba Mon Sep 17 00:00:00 2001 From: oliskoli Date: Sat, 21 Apr 2007 19:42:31 +0000 Subject: [PATCH] tef_xml: Add support for "TourExchangeFormat" version 1.5. Try to repair cutted descriptions. Regenerate gpx reference. --- gpsbabel/reference/route/tef_xml.sample.gpx | 1586 +++++++++---------- gpsbabel/tef_xml.c | 284 ++-- 2 files changed, 867 insertions(+), 1003 deletions(-) diff --git a/gpsbabel/reference/route/tef_xml.sample.gpx b/gpsbabel/reference/route/tef_xml.sample.gpx index 081c48526..e34365079 100644 --- a/gpsbabel/reference/route/tef_xml.sample.gpx +++ b/gpsbabel/reference/route/tef_xml.sample.gpx @@ -7,1492 +7,1338 @@ xmlns="http://www.topografix.com/GPX/1/0" xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/GPX/1/0/gpx.xsd"> - - in Zedtwitz halb rechts halten auf B2 Hofer Strasse - B2 Hofer Strasse - B2 Hofer Strasse + + B2 Schleizer Strasse + bei D 95030 Hof/Innenstadt + bei D 95030 Hof/Innenstadt - bei D 95183 Töpen - B2\Hofer Strasse - B2\Hofer Strasse + B2\Hofer Strasse + bei D 95183 Töpen + bei D 95183 Töpen - bei D 07356 Lobenstein - L1095\Strasse der Jugend - L1095\Strasse der Jugend + L1095\Strasse der Jugend + bei D 07356 Lobenstein + bei D 07356 Lobenstein - bei D 07929 Saalburg-Ebersdorf/Saalburg - L1095 - L1095 + L1095 + bei D 07929 Saalburg-Ebersdorf/Saalburg + bei D 07929 Saalburg-Ebersdorf/Saalburg - bei D07907 Burgk/Burgkhammer - K550 - K550 + K550 + bei D07907 Burgk/Burgkhammer + bei D07907 Burgk/Burgkhammer - bei D 07907 Burgk/Burgkhammer - Burgkhammer - Burgkhammer + Burgkhammer + bei D 07907 Burgk/Burgkhammer + bei D 07907 Burgk/Burgkhammer - bei D 07907 Burgk - L2357 - L2357 + L2357 + bei D 07907 Burgk + bei D 07907 Burgk - bei D 07907 Schleiz/Möschlitz - L2357 - L2357 + L2357 + bei D 07907 Schleiz/Möschlitz + bei D 07907 Schleiz/Möschlitz - bei D 07924 Ziegenrück - L2350\Plothental - L2350\Plothental + L2350\Plothental + bei D 07924 Ziegenrück + bei D 07924 Ziegenrück - bei D 07389 Knau - L2349\Hauptstrasse - L2349\Hauptstrasse + L2349\Hauptstrasse + bei D 07389 Knau + bei D 07389 Knau - bei D 07907 Plothen - L2349\Ortsstrasse - L2349\Ortsstrasse + L2349\Ortsstrasse + bei D 07907 Plothen + bei D 07907 Plothen - bei D 07907 Schleiz/Langenbuch - K304\Lössauer Strasse - K304\Lössauer Strasse + K304\Lössauer Strasse + bei D 07907 Schleiz/Langenbuch + bei D 07907 Schleiz/Langenbuch - bei D 07952 Pausa/Oberreichenau - S316\Am Mühlgraben - S316\Am Mühlgraben + S316\Am Mühlgraben + bei D 07952 Pausa/Oberreichenau + bei D 07952 Pausa/Oberreichenau - bei D 08548 Syrau - B282/E49\Hauptstrasse - B282/E49\Hauptstrasse + B282/E49\Hauptstrasse + bei D 08548 Syrau + bei D 08548 Syrau - bei D 08525 Plauen/Preißelpöhl - Martin-Luther-Strasse - Martin-Luther-Strasse + Martin-Luther-Strasse + bei D 08525 Plauen/Preißelpöhl + bei D 08525 Plauen/Preißelpöhl - bei D 08541 Neuensalz - B173\Hauptstrasse - B173\Hauptstrasse + B173\Hauptstrasse + bei D 08541 Neuensalz + bei D 08541 Neuensalz - bei D 08543 Pöhl/Helmsgrün - K7880\Helmsgrün-Dorfstrasse - K7880\Helmsgrün-Dorfstrasse + K7880\Helmsgrün-Dorfstrasse + bei D 08543 Pöhl/Helmsgrün + bei D 08543 Pöhl/Helmsgrün - bei D 08543 Herlasgrün - K7811\Herlasgrün-Dorfstrasse - K7811\Herlasgrün-Dorfstrasse + K7811\Herlasgrün-Dorfstrasse + bei D 08543 Herlasgrün + bei D 08543 Herlasgrün - bei D 07985 Elsterberg/Reuth - S296\Netzschkauer Strasse - S296\Netzschkauer Strasse + S296\Netzschkauer Strasse + bei D 07985 Elsterberg/Reuth + bei D 07985 Elsterberg/Reuth - bei D 08491 Netzschkau - S296\Elsterberger Strasse - S296\Elsterberger Strasse + S296\Elsterberger Strasse + bei D 08491 Netzschkau + bei D 08491 Netzschkau - bei D 08499 Mylau/Obermylau - B173\Netzschkauer Strasse - B173\Netzschkauer Strasse + B173\Netzschkauer Strasse + bei D 08499 Mylau/Obermylau + bei D 08499 Mylau/Obermylau - bei D 08499 Mylau/Obermylau - B173\Robert-Georgi-Weg - B173\Robert-Georgi-Weg + B173\Robert-Georgi-Weg + bei D 08499 Mylau/Obermylau + bei D 08499 Mylau/Obermylau - bei D 08468 Reichenbach - B173\Friedensstrasse - B173\Friedensstrasse + B173\Friedensstrasse + bei D 08468 Reichenbach + bei D 08468 Reichenbach - bei D 08496 Neumark/Unterneumark - B173 - B173 + B173 + bei D 08496 Neumark/Unterneumark + bei D 08496 Neumark/Unterneumark - D 08115 Schönfels - K9351\Zwickauer Strasse - K9351\Zwickauer Strasse + K9351\Zwickauer Strasse + D 08115 Schönfels + D 08115 Schönfels - bei D 08056 Zwickau/Bahnhofsvorstadt - B173\Reichenbacher Strasse - B173\Reichenbacher Strasse + B173\Reichenbacher Strasse + bei D 08056 Zwickau/Bahnhofsvorstadt + bei D 08056 Zwickau/Bahnhofsvorstadt - bei D 09350 Lichtenstein - S255\Innere Zwickauer Strasse - S255\Innere Zwickauer Strasse + S255\Innere Zwickauer Strasse + bei D 09350 Lichtenstein + bei D 09350 Lichtenstein - bei D 08118 Hartenstein - S284\Bahnhofstrasse - S284\Bahnhofstrasse + S284\Bahnhofstrasse + bei D 08118 Hartenstein + bei D 08118 Hartenstein - bei D 08228 Rodewisch - B169\Lindenstrasse - B169\Lindenstrasse + B169\Lindenstrasse + bei D 08228 Rodewisch + bei D 08228 Rodewisch - bei D 08209 Auerbach - B169\Göltzschtalstrasse - B169\Göltzschtalstrasse + B169\Göltzschtalstrasse + bei D 08209 Auerbach + bei D 08209 Auerbach - bei D 08209 Auerbach/Beerheide - K7833\Rempesgrüner Strasse - K7833\Rempesgrüner Strasse + K7833\Rempesgrüner Strasse + bei D 08209 Auerbach/Beerheide + bei D 08209 Auerbach/Beerheide - D 08304 Schönheide - S278\Hauptstrasse - S278\Hauptstrasse + S278\Hauptstrasse + D 08304 Schönheide + D 08304 Schönheide - bei D 08262 Tannenbergsthal/Jägersgrün - B283\Schönheider Strasse - B283\Schönheider Strasse + B283\Schönheider Strasse + bei D 08262 Tannenbergsthal/Jägersgrün + bei D 08262 Tannenbergsthal/Jägersgrün - bei D 08262 Tannenbergsthal - B283\Klingenthaler Strasse - B283\Klingenthaler Strasse + B283\Klingenthaler Strasse + bei D 08262 Tannenbergsthal + bei D 08262 Tannenbergsthal - bei D 08248 Klingenthal/Brunndöbra - S304\Falkensteiner Strasse - S304\Falkensteiner Strasse + S304\Falkensteiner Strasse + bei D 08248 Klingenthal/Brunndöbra + bei D 08248 Klingenthal/Brunndöbra - bei D 08223 Grünbach-Muldenberg - S302/S304 - S302/S304 + S302/S304 + bei D 08223 Grünbach-Muldenberg + bei D 08223 Grünbach-Muldenberg - bei D 08223 Grünbach - S304\Bahnhofstrasse - S304\Bahnhofstrasse + S304\Bahnhofstrasse + bei D 08223 Grünbach + bei D 08223 Grünbach - bei D 08261 Schöneck - S301 - S301 + S301 + bei D 08261 Schöneck + bei D 08261 Schöneck - bei D 08258 Markneukirchen/Friebus - B283 - B283 + B283 + bei D 08258 Markneukirchen/Friebus + bei D 08258 Markneukirchen/Friebus - bei D 08258 Landwüst - K7844\Rauner Strasse - K7844\Rauner Strasse + K7844\Rauner Strasse + bei D 08258 Landwüst + bei D 08258 Landwüst - bei D 08626 Adorf/Jugelsburg - B92/E49 - B92/E49 + B92/E49 + bei D 08626 Adorf/Jugelsburg + bei D 08626 Adorf/Jugelsburg - bei D 08626 Adorf - B92/E49\Oelsnitzer Strasse - B92/E49\Oelsnitzer Strasse + B92/E49\Oelsnitzer Strasse + bei D 08626 Adorf + bei D 08626 Adorf - bei D 08606 Planschwitz - K7854\Oelsnitzer Strasse - K7854\Oelsnitzer Strasse + K7854\Oelsnitzer Strasse + bei D 08606 Planschwitz + bei D 08606 Planschwitz - bei D 08538 Burgstein/Dröda - S310\Bobenneukirchener Strasse - S310\Bobenneukirchener Strasse + S310\Bobenneukirchener Strasse + bei D 08538 Burgstein/Dröda + bei D 08538 Burgstein/Dröda - bei D 08538 Burgstein/Pirk - K7859 - K7859 + K7859 + bei D 08538 Burgstein/Pirk + bei D 08538 Burgstein/Pirk - bei D 08538 Burgstein/Kemnitz - K7859 - K7859 + K7859 + bei D 08538 Burgstein/Kemnitz + bei D 08538 Burgstein/Kemnitz + + + bei D95032 Hof + bei D95032 Hof + bei D95032 Hof - von bei D 95030 Hof/Innenstadt nach bei D95032 Hof + von bei D 95030 Hof/Innenstadt nach bei D95032 Hof MOTORRAD Tourenplaner 2005/2006 9.50 - bei D 95030 Hof/Innenstadt - B2 Schleizer Strasse - B2 Schleizer Strasse + B2 Schleizer Strasse + bei D 95030 Hof/Innenstadt + bei D 95030 Hof/Innenstadt - in Zedtwitz halb rechts halten auf B2 Hofer Strasse - B2 Hofer Strasse - B2 Hofer Strasse + B2 Hofer Strasse + in Zedtwitz halb rechts halten auf B2 Hofer Strasse - rechts abbiegen auf B2 - B2 - B2 + B2 + rechts abbiegen auf B2 - bei D 95183 Töpen - B2\Hofer Strasse - B2\Hofer Strasse + B2\Hofer Strasse + bei D 95183 Töpen + bei D 95183 Töpen - in Gefell links abbiegen auf B90 Friedensstrasse - B90 Friedensstrasse - B90 Friedensstrasse + B90 Friedensstrasse + in Gefell links abbiegen auf B90 Friedensstrasse - in Lobenstein halb rechts halten auf B90 Hirschberger Strasse - B90 Hirschberger Strasse - B90 Hirschberger Strasse + B90 Hirschberger Strasse + in Lobenstein halb rechts halten auf B90 Hirschberger Strasse - geradeaus weiter auf Strasse der Jugend (L1095) - Strasse der Jugend (L1095) - Strasse der Jugend (L1095) + Strasse der Jugend (L1095) + geradeaus weiter auf Strasse der Jugend (L1095) - bei D 07356 Lobenstein - L1095\Strasse der Jugend - L1095\Strasse der Jugend + L1095\Strasse der Jugend + bei D 07356 Lobenstein + bei D 07356 Lobenstein - links abbiegen auf L1099 - L1099 - L1099 + L1099 + links abbiegen auf L1099 - rechts abbiegen + RPT010 + rechts abbiegen - in Schönbrunn links abbiegen auf Schönbrunn - Schönbrunn - Schönbrunn + Schönbrunn + in Schönbrunn links abbiegen auf Schönbrunn - links abbiegen auf Schönbrunn - Schönbrunn - Schönbrunn + Schönbrunn + links abbiegen auf Schönbrunn - halb rechts halten auf Schönbrunn - Schönbrunn - Schönbrunn + Schönbrunn + halb rechts halten auf Schönbrunn - geradeaus weiter auf L1095 - L1095 - L1095 + L1095 + geradeaus weiter auf L1095 - halb links halten auf L1095 - L1095 - L1095 + L1095 + halb links halten auf L1095 - in Bellevue links abbiegen auf L1095 - L1095 - L1095 + L1095 + in Bellevue links abbiegen auf L1095 - in Saalburg geradeaus weiter auf L1095 - L1095 - L1095 + L1095 + in Saalburg geradeaus weiter auf L1095 - geradeaus weiter auf L1095 - L1095 - L1095 + L1095 + geradeaus weiter auf L1095 - links abbiegen auf L1095 - L1095 - L1095 + L1095 + links abbiegen auf L1095 - rechts abbiegen auf Schleizer Strasse (L1095) - Schleizer Strasse (L1095) - Schleizer Strasse (L1095) + Schleizer Strasse (L1095) + rechts abbiegen auf Schleizer Strasse (L1095) - bei D 07929 Saalburg-Ebersdorf/Saalburg - L1095 - L1095 + L1095 + bei D 07929 Saalburg-Ebersdorf/Saalburg + bei D 07929 Saalburg-Ebersdorf/Saalburg - geradeaus weiter auf L1095 - L1095 - L1095 + L1095 + geradeaus weiter auf L1095 - links abbiegen + RPT023 + links abbiegen - bei D07907 Burgk/Burgkhammer - K550 - K550 + K550 + bei D07907 Burgk/Burgkhammer + bei D07907 Burgk/Burgkhammer - rechts abbiegen auf L1101 - L1101 - L1101 + L1101 + rechts abbiegen auf L1101 - geradeaus weiter auf Burgkhammer - Burgkhammer - Burgkhammer + Burgkhammer + geradeaus weiter auf Burgkhammer - bei D 07907 Burgk/Burgkhammer - Burgkhammer - Burgkhammer + Burgkhammer + bei D 07907 Burgk/Burgkhammer + bei D 07907 Burgk/Burgkhammer - in Burgkhammer links abbiegen auf L1101 - L1101 - L1101 + L1101 + in Burgkhammer links abbiegen auf L1101 - links abbiegen + RPT029 + links abbiegen - links abbiegen auf L1095 - L1095 - L1095 + L1095 + links abbiegen auf L1095 - links abbiegen auf Burgker Chaussee (L1101) - Burgker Chaussee (L1101) - Burgker Chaussee (L1101) + Burgker Chaussee (L1101) + links abbiegen auf Burgker Chaussee (L1101) - links abbiegen auf Burgker Strasse (L1101) - Burgker Strasse (L1101) - Burgker Strasse (L1101) + Burgker Strasse (L1101) + links abbiegen auf Burgker Strasse (L1101) - halb rechts halten auf L2357 - L2357 - L2357 + L2357 + halb rechts halten auf L2357 - bei D 07907 Burgk - L2357 - L2357 + L2357 + bei D 07907 Burgk + bei D 07907 Burgk - geradeaus weiter auf Burgker Strasse (L1101) - Burgker Strasse (L1101) - Burgker Strasse (L1101) + Burgker Strasse (L1101) + geradeaus weiter auf Burgker Strasse (L1101) - geradeaus weiter auf L2357 - L2357 - L2357 + L2357 + geradeaus weiter auf L2357 - bei D 07907 Schleiz/Möschlitz - L2357 - L2357 + L2357 + bei D 07907 Schleiz/Möschlitz + bei D 07907 Schleiz/Möschlitz - links abbiegen + RPT038 + links abbiegen - in Grochwitz halb rechts halten auf Mühlenstrasse - Mühlenstrasse - Mühlenstrasse + Mühlenstrasse + in Grochwitz halb rechts halten auf Mühlenstrasse - geradeaus weiter auf Sackgasse - Sackgasse - Sackgasse + Sackgasse + geradeaus weiter auf Sackgasse - geradeaus weiter + RPT041 + geradeaus weiter - links abbiegen auf L1103 - L1103 - L1103 + L1103 + links abbiegen auf L1103 - links abbiegen auf L1103 - L1103 - L1103 + L1103 + links abbiegen auf L1103 - in Crispendorf halb rechts halten auf Ortsstrasse (L1103) - Ortsstrasse (L1103) - Ortsstrasse (L1103) + Ortsstrasse (L1103) + in Crispendorf halb rechts halten auf Ortsstrasse (L1103) - halb rechts halten auf Ortsstrasse (L1103) - Ortsstrasse (L1103) - Ortsstrasse (L1103) + Ortsstrasse (L1103) + halb rechts halten auf Ortsstrasse (L1103) - halb rechts halten auf L1103 - L1103 - L1103 + L1103 + halb rechts halten auf L1103 - in Ziegenrück halb links halten auf Schleizer Strasse (L1103) - Schleizer Strasse (L1103) - Schleizer Strasse (L1103) + Schleizer Strasse (L1103) + in Ziegenrück halb links halten auf Schleizer Strasse (L1103) - rechts abbiegen auf Plothental (L2350) - Plothental (L2350) - Plothental (L2350) + Plothental (L2350) + rechts abbiegen auf Plothental (L2350) - bei D 07924 Ziegenrück - L2350\Plothental - L2350\Plothental + L2350\Plothental + bei D 07924 Ziegenrück + bei D 07924 Ziegenrück - in Tausa halb links halten auf Tausa (L2350) - Tausa (L2350) - Tausa (L2350) + Tausa (L2350) + in Tausa halb links halten auf Tausa (L2350) - in Bucha links abbiegen auf Ortsstrasse (L2350) - Ortsstrasse (L2350) - Ortsstrasse (L2350) + Ortsstrasse (L2350) + in Bucha links abbiegen auf Ortsstrasse (L2350) - rechts abbiegen auf L2350 - L2350 - L2350 + L2350 + rechts abbiegen auf L2350 - in Knau halb links halten auf Hauptstrasse (L2349) - Hauptstrasse (L2349) - Hauptstrasse (L2349) + Hauptstrasse (L2349) + in Knau halb links halten auf Hauptstrasse (L2349) - bei D 07389 Knau - L2349\Hauptstrasse - L2349\Hauptstrasse + L2349\Hauptstrasse + bei D 07389 Knau + bei D 07389 Knau - links abbiegen auf Hauptstrasse (L2349) - Hauptstrasse (L2349) - Hauptstrasse (L2349) + Hauptstrasse (L2349) + links abbiegen auf Hauptstrasse (L2349) - bei D 07907 Plothen - L2349\Ortsstrasse - L2349\Ortsstrasse + L2349\Ortsstrasse + bei D 07907 Plothen + bei D 07907 Plothen - in Dittersdorf rechts abbiegen auf L1077 - L1077 - L1077 + L1077 + in Dittersdorf rechts abbiegen auf L1077 - rechts abbiegen auf Ziegelei - Ziegelei - Ziegelei + Ziegelei + rechts abbiegen auf Ziegelei - halb rechts halten auf B2 - B2 - B2 + B2 + halb rechts halten auf B2 - in Oettersdorf links abbiegen auf Löhmaer Weg (K301) - Löhmaer Weg (K301) - Löhmaer Weg (K301) + Löhmaer Weg (K301) + in Oettersdorf links abbiegen auf Löhmaer Weg (K301) - rechts abbiegen auf Löhmaer Weg (K301) - Löhmaer Weg (K301) - Löhmaer Weg (K301) + Löhmaer Weg (K301) + rechts abbiegen auf Löhmaer Weg (K301) - links abbiegen auf Löhmaer Weg (K301) - Löhmaer Weg (K301) - Löhmaer Weg (K301) + Löhmaer Weg (K301) + links abbiegen auf Löhmaer Weg (K301) - rechts abbiegen + RPT063 + rechts abbiegen - in Löhma links abbiegen auf Ortsstrasse - Ortsstrasse - Ortsstrasse + Ortsstrasse + in Löhma links abbiegen auf Ortsstrasse - geradeaus weiter + RPT065 + geradeaus weiter - in Kirschkau geradeaus weiter auf Ortsstrasse - Ortsstrasse - Ortsstrasse + Ortsstrasse + in Kirschkau geradeaus weiter auf Ortsstrasse - rechts abbiegen auf Ortsstrasse - Ortsstrasse - Ortsstrasse + Ortsstrasse + rechts abbiegen auf Ortsstrasse - rechts abbiegen auf Ortsstrasse - Ortsstrasse - Ortsstrasse + Ortsstrasse + rechts abbiegen auf Ortsstrasse - links abbiegen auf Ortsstrasse - Ortsstrasse - Ortsstrasse + Ortsstrasse + links abbiegen auf Ortsstrasse - rechts abbiegen auf Ortsstrasse - Ortsstrasse - Ortsstrasse + Ortsstrasse + rechts abbiegen auf Ortsstrasse - geradeaus weiter auf B94 - B94 - B94 + B94 + geradeaus weiter auf B94 - rechts abbiegen auf B94 - B94 - B94 + B94 + rechts abbiegen auf B94 - links abbiegen auf Dorfstrasse - Dorfstrasse - Dorfstrasse + Dorfstrasse + links abbiegen auf Dorfstrasse - in Lössau links abbiegen + RPT074 + in Lössau links abbiegen - bei D 07907 Schleiz/Langenbuch - K304\Lössauer Strasse - K304\Lössauer Strasse + K304\Lössauer Strasse + bei D 07907 Schleiz/Langenbuch + bei D 07907 Schleiz/Langenbuch - in Langenbuch links abbiegen auf Thierbacher Strasse (L2348) - Thierbacher Strasse (L2348) - Thierbacher Strasse (L2348) + Thierbacher Strasse (L2348) + in Langenbuch links abbiegen auf Thierbacher Strasse (L2348) - geradeaus weiter + RPT077 + geradeaus weiter - in Pausa/Vogtl. rechts abbiegen + RPT078 + in Pausa/Vogtl. rechts abbiegen - rechts abbiegen auf Plauensche Strasse (S316) - Plauensche Strasse (S316) - Plauensche Strasse (S316) + Plauensche Strasse (S316) + rechts abbiegen auf Plauensche Strasse (S316) - in Oberreichenau halb links halten auf Am Mühlgraben (S316) - Am Mühlgraben (S316) - Am Mühlgraben (S316) + Am Mühlgraben (S316) + in Oberreichenau halb links halten auf Am Mühlgraben (S316) - bei D 07952 Pausa/Oberreichenau - S316\Am Mühlgraben - S316\Am Mühlgraben + S316\Am Mühlgraben + bei D 07952 Pausa/Oberreichenau + bei D 07952 Pausa/Oberreichenau - in Syrau halb rechts halten auf B282/E49 Hauptstrasse - B282/E49 Hauptstrasse - B282/E49 Hauptstrasse + B282/E49 Hauptstrasse + in Syrau halb rechts halten auf B282/E49 Hauptstrasse - bei D 08548 Syrau - B282/E49\Hauptstrasse - B282/E49\Hauptstrasse + B282/E49\Hauptstrasse + bei D 08548 Syrau + bei D 08548 Syrau - rechts abbiegen auf Pausaer Strasse - Pausaer Strasse - Pausaer Strasse + Pausaer Strasse + rechts abbiegen auf Pausaer Strasse - rechts abbiegen auf B92/E49 Pausaer Strasse - B92/E49 Pausaer Strasse - B92/E49 Pausaer Strasse + B92/E49 Pausaer Strasse + rechts abbiegen auf B92/E49 Pausaer Strasse - in Plauen links abbiegen auf Martin-Luther-Strasse - Martin-Luther-Strasse - Martin-Luther-Strasse + Martin-Luther-Strasse + in Plauen links abbiegen auf Martin-Luther-Strasse - bei D 08525 Plauen/Preißelpöhl - Martin-Luther-Strasse - Martin-Luther-Strasse + Martin-Luther-Strasse + bei D 08525 Plauen/Preißelpöhl + bei D 08525 Plauen/Preißelpöhl - links abbiegen auf Lessingstrasse - Lessingstrasse - Lessingstrasse + Lessingstrasse + links abbiegen auf Lessingstrasse - links abbiegen auf B173 Hammerstrasse - B173 Hammerstrasse - B173 Hammerstrasse + B173 Hammerstrasse + links abbiegen auf B173 Hammerstrasse - links abbiegen auf Voigtsgrüner Weg (K6605) - Voigtsgrüner Weg (K6605) - Voigtsgrüner Weg (K6605) + Voigtsgrüner Weg (K6605) + links abbiegen auf Voigtsgrüner Weg (K6605) - rechts abbiegen auf Zum Plom - Zum Plom - Zum Plom + Zum Plom + rechts abbiegen auf Zum Plom - rechts abbiegen + RPT092 + rechts abbiegen - in Neuensalz links abbiegen auf B169 - B169 - B169 + B169 + in Neuensalz links abbiegen auf B169 - links abbiegen auf B169 Alte Plauener Strasse - B169 Alte Plauener Strasse - B169 Alte Plauener Strasse + B169 Alte Plauener Strasse + links abbiegen auf B169 Alte Plauener Strasse - geradeaus weiter auf B173 Hauptstrasse - B173 Hauptstrasse - B173 Hauptstrasse + B173 Hauptstrasse + geradeaus weiter auf B173 Hauptstrasse - bei D 08541 Neuensalz - B173\Hauptstrasse - B173\Hauptstrasse + B173\Hauptstrasse + bei D 08541 Neuensalz + bei D 08541 Neuensalz - in Thossfell geradeaus weiter auf B173 Hauptstrasse - B173 Hauptstrasse - B173 Hauptstrasse + B173 Hauptstrasse + in Thossfell geradeaus weiter auf B173 Hauptstrasse - geradeaus weiter auf B173 Hauptstrasse - B173 Hauptstrasse - B173 Hauptstrasse + B173 Hauptstrasse + geradeaus weiter auf B173 Hauptstrasse - links abbiegen auf Gansgrüner Strasse (K7880) - Gansgrüner Strasse (K7880) - Gansgrüner Strasse (K7880) + Gansgrüner Strasse (K7880) + links abbiegen auf Gansgrüner Strasse (K7880) - links abbiegen auf Gansgrüner Strasse (K7880) - Gansgrüner Strasse (K7880) - Gansgrüner Strasse (K7880) + Gansgrüner Strasse (K7880) + links abbiegen auf Gansgrüner Strasse (K7880) - in Gansgrün links abbiegen auf Dorfstrasse - Dorfstrasse - Dorfstrasse + Dorfstrasse + in Gansgrün links abbiegen auf Dorfstrasse - rechts abbiegen auf Dorfstrasse (K7880) - Dorfstrasse (K7880) - Dorfstrasse (K7880) + Dorfstrasse (K7880) + rechts abbiegen auf Dorfstrasse (K7880) - halb rechts halten auf Dorfstrasse (K7880) - Dorfstrasse (K7880) - Dorfstrasse (K7880) + Dorfstrasse (K7880) + halb rechts halten auf Dorfstrasse (K7880) - halb links halten + RPT104 + halb links halten - bei D 08543 Pöhl/Helmsgrün - K7880\Helmsgrün-Dorfstrasse - K7880\Helmsgrün-Dorfstrasse + K7880\Helmsgrün-Dorfstrasse + bei D 08543 Pöhl/Helmsgrün + bei D 08543 Pöhl/Helmsgrün - in Helmsgrün halb rechts halten + RPT106 + in Helmsgrün halb rechts halten - in Herlasgrün rechts abbiegen auf Herlasgrün-Dorfstrasse (K7811) - Herlasgrün-Dorfstrasse (K7811) - Herlasgrün-Dorfstrasse (K7811) + Herlasgrün-Dorfstrasse (K7811) + in Herlasgrün rechts abbiegen auf Herlasgrün-Dorfstrasse (K7811) - bei D 08543 Herlasgrün - K7811\Herlasgrün-Dorfstrasse - K7811\Herlasgrün-Dorfstrasse + K7811\Herlasgrün-Dorfstrasse + bei D 08543 Herlasgrün + bei D 08543 Herlasgrün - links abbiegen auf Herlasgrün-Christgrüner Strasse - Herlasgrün-Christgrüner Strasse - Herlasgrün-Christgrüner Strasse + Herlasgrün-Christgrüner Strasse + links abbiegen auf Herlasgrün-Christgrüner Strasse - geradeaus weiter auf Christgrüner Strasse - Christgrüner Strasse - Christgrüner Strasse + Christgrüner Strasse + geradeaus weiter auf Christgrüner Strasse - rechts abbiegen auf Dreckschänke (S297) - Dreckschänke (S297) - Dreckschänke (S297) + Dreckschänke (S297) + rechts abbiegen auf Dreckschänke (S297) - links abbiegen auf S298 - S298 - S298 + S298 + links abbiegen auf S298 - in Reimersgrün links abbiegen + RPT113 + in Reimersgrün links abbiegen - halb rechts halten + RPT114 + halb rechts halten - in Coschütz rechts abbiegen auf Friedensstrasse (K7887) - Friedensstrasse (K7887) - Friedensstrasse (K7887) + Friedensstrasse (K7887) + in Coschütz rechts abbiegen auf Friedensstrasse (K7887) - links abbiegen auf S298 - S298 - S298 + S298 + links abbiegen auf S298 - rechts abbiegen auf Netzschkauer Strasse (S296) - Netzschkauer Strasse (S296) - Netzschkauer Strasse (S296) + Netzschkauer Strasse (S296) + rechts abbiegen auf Netzschkauer Strasse (S296) - bei D 07985 Elsterberg/Reuth - S296\Netzschkauer Strasse - S296\Netzschkauer Strasse + S296\Netzschkauer Strasse + bei D 07985 Elsterberg/Reuth + bei D 07985 Elsterberg/Reuth - bei D 08491 Netzschkau - S296\Elsterberger Strasse - S296\Elsterberger Strasse + S296\Elsterberger Strasse + bei D 08491 Netzschkau + bei D 08491 Netzschkau - in Netzschkau links abbiegen auf Elsterberger Strasse (S296) - Elsterberger Strasse (S296) - Elsterberger Strasse (S296) + Elsterberger Strasse (S296) + in Netzschkau links abbiegen auf Elsterberger Strasse (S296) - rechts abbiegen auf Strasse der Einheit (S296) - Strasse der Einheit (S296) - Strasse der Einheit (S296) + Strasse der Einheit (S296) + rechts abbiegen auf Strasse der Einheit (S296) - halb rechts halten auf Strasse der Einheit (S296) - Strasse der Einheit (S296) - Strasse der Einheit (S296) + Strasse der Einheit (S296) + halb rechts halten auf Strasse der Einheit (S296) - links abbiegen auf B173 Plauener Strasse - B173 Plauener Strasse - B173 Plauener Strasse + B173 Plauener Strasse + links abbiegen auf B173 Plauener Strasse - bei D 08499 Mylau/Obermylau - B173\Netzschkauer Strasse - B173\Netzschkauer Strasse + B173\Netzschkauer Strasse + bei D 08499 Mylau/Obermylau + bei D 08499 Mylau/Obermylau - bei D 08499 Mylau/Obermylau - B173\Robert-Georgi-Weg - B173\Robert-Georgi-Weg + B173\Robert-Georgi-Weg + bei D 08499 Mylau/Obermylau + bei D 08499 Mylau/Obermylau - in Reichenbach im Vogtland links abbiegen auf B173/B94 Klinkhardtstrasse - B173/B94 Klinkhardtstrasse - B173/B94 Klinkhardtstrasse + B173/B94 Klinkhardtstrasse + in Reichenbach im Vogtland links abbiegen auf B173/B94 Klinkhardtstrasse - links abbiegen auf B173/B94 Dr.-Külz-Strasse - B173/B94 Dr.-Külz-Strasse - B173/B94 Dr.-Külz-Strasse + B173/B94 Dr.-Külz-Strasse + links abbiegen auf B173/B94 Dr.-Külz-Strasse - rechts abbiegen auf B173 Friedensstrasse - B173 Friedensstrasse - B173 Friedensstrasse + B173 Friedensstrasse + rechts abbiegen auf B173 Friedensstrasse - bei D 08468 Reichenbach - B173\Friedensstrasse - B173\Friedensstrasse + B173\Friedensstrasse + bei D 08468 Reichenbach + bei D 08468 Reichenbach - in Neumark geradeaus weiter auf B173 - B173 - B173 + B173 + in Neumark geradeaus weiter auf B173 - geradeaus weiter auf B173 - B173 - B173 + B173 + geradeaus weiter auf B173 - bei D 08496 Neumark/Unterneumark - B173 - B173 + B173 + bei D 08496 Neumark/Unterneumark + bei D 08496 Neumark/Unterneumark - in Schönfels links abbiegen auf Stenner Strasse - Stenner Strasse - Stenner Strasse + Stenner Strasse + in Schönfels links abbiegen auf Stenner Strasse - geradeaus weiter auf Zwickauer Strasse (K9351) - Zwickauer Strasse (K9351) - Zwickauer Strasse (K9351) + Zwickauer Strasse (K9351) + geradeaus weiter auf Zwickauer Strasse (K9351) - D 08115 Schönfels - K9351\Zwickauer Strasse - K9351\Zwickauer Strasse + K9351\Zwickauer Strasse + D 08115 Schönfels + D 08115 Schönfels - halb rechts halten auf Stenner Strasse - Stenner Strasse - Stenner Strasse + Stenner Strasse + halb rechts halten auf Stenner Strasse - links abbiegen auf B173 Neumarker Strasse - B173 Neumarker Strasse - B173 Neumarker Strasse + B173 Neumarker Strasse + links abbiegen auf B173 Neumarker Strasse - bei D 08056 Zwickau/Bahnhofsvorstadt - B173\Reichenbacher Strasse - B173\Reichenbacher Strasse + B173\Reichenbacher Strasse + bei D 08056 Zwickau/Bahnhofsvorstadt + bei D 08056 Zwickau/Bahnhofsvorstadt - in Zwickau rechts abbiegen auf B173 Humboldtstrasse - B173 Humboldtstrasse - B173 Humboldtstrasse + B173 Humboldtstrasse + in Zwickau rechts abbiegen auf B173 Humboldtstrasse - links abbiegen auf B173 Am Schwanenteich - B173 Am Schwanenteich - B173 Am Schwanenteich + B173 Am Schwanenteich + links abbiegen auf B173 Am Schwanenteich - rechts halten auf B173 Dr.-Friedrichs-Ring - B173 Dr.-Friedrichs-Ring - B173 Dr.-Friedrichs-Ring + B173 Dr.-Friedrichs-Ring + rechts halten auf B173 Dr.-Friedrichs-Ring - geradeaus weiter auf B173 Glück-Auf-Brücke/Äussere Dresdner Strasse - B173 Glück-Auf-Brücke/Äussere Dresdner Strasse - B173 Glück-Auf-Brücke/Äussere Dresdner Strasse + B173 Glück-Auf-Brücke/Äussere Dresdner Strasse + geradeaus weiter auf B173 Glück-Auf-Brücke/Äussere Dresdner Strasse - rechts abbiegen auf Dresdner Strasse - Dresdner Strasse - Dresdner Strasse + Dresdner Strasse + rechts abbiegen auf Dresdner Strasse - geradeaus weiter auf Äussere Zwickauer Strasse - Äussere Zwickauer Strasse - Äussere Zwickauer Strasse + Äussere Zwickauer Strasse + geradeaus weiter auf Äussere Zwickauer Strasse - in Lichtenstein/Sa. geradeaus weiter auf Innere Zwickauer Strasse - Innere Zwickauer Strasse - Innere Zwickauer Strasse + Innere Zwickauer Strasse + in Lichtenstein/Sa. geradeaus weiter auf Innere Zwickauer Strasse - bei D 09350 Lichtenstein - S255\Innere Zwickauer Strasse - S255\Innere Zwickauer Strasse + S255\Innere Zwickauer Strasse + bei D 09350 Lichtenstein + bei D 09350 Lichtenstein - rechts abbiegen auf Hartensteiner Strasse (S255) - Hartensteiner Strasse (S255) - Hartensteiner Strasse (S255) + Hartensteiner Strasse (S255) + rechts abbiegen auf Hartensteiner Strasse (S255) - rechts abbiegen auf Hartensteiner Strasse (S255) - Hartensteiner Strasse (S255) - Hartensteiner Strasse (S255) + Hartensteiner Strasse (S255) + rechts abbiegen auf Hartensteiner Strasse (S255) - rechts abbiegen auf Hartensteiner Strasse (S255) - Hartensteiner Strasse (S255) - Hartensteiner Strasse (S255) + Hartensteiner Strasse (S255) + rechts abbiegen auf Hartensteiner Strasse (S255) - halb links halten auf Hartensteiner Strasse (S255) - Hartensteiner Strasse (S255) - Hartensteiner Strasse (S255) + Hartensteiner Strasse (S255) + halb links halten auf Hartensteiner Strasse (S255) - geradeaus weiter auf S283 - S283 - S283 + S283 + geradeaus weiter auf S283 - rechts abbiegen auf S283 - S283 - S283 + S283 + rechts abbiegen auf S283 - in Hartenstein links abbiegen auf August-Bebel-Strasse (S283) - August-Bebel-Strasse (S283) - August-Bebel-Strasse (S283) + August-Bebel-Strasse (S283) + in Hartenstein links abbiegen auf August-Bebel-Strasse (S283) - geradeaus weiter auf Bahnhofstrasse (S284) - Bahnhofstrasse (S284) - Bahnhofstrasse (S284) + Bahnhofstrasse (S284) + geradeaus weiter auf Bahnhofstrasse (S284) - bei D 08118 Hartenstein - S284\Bahnhofstrasse - S284\Bahnhofstrasse + S284\Bahnhofstrasse + bei D 08118 Hartenstein + bei D 08118 Hartenstein - rechts abbiegen + RPT156 + rechts abbiegen - links abbiegen + RPT157 + links abbiegen - in Stein rechts abbiegen auf Langenbacher Strasse (K9309) - Langenbacher Strasse (K9309) - Langenbacher Strasse (K9309) + Langenbacher Strasse (K9309) + in Stein rechts abbiegen auf Langenbacher Strasse (K9309) - halb links halten auf Wildbacher Strasse (K9309) - Wildbacher Strasse (K9309) - Wildbacher Strasse (K9309) + Wildbacher Strasse (K9309) + halb links halten auf Wildbacher Strasse (K9309) - geradeaus weiter + RPT160 + geradeaus weiter - halb rechts halten auf Hartensteiner Strasse (K9109) - Hartensteiner Strasse (K9109) - Hartensteiner Strasse (K9109) + Hartensteiner Strasse (K9109) + halb rechts halten auf Hartensteiner Strasse (K9109) - in Wildbach rechts abbiegen auf Hartensteiner Strasse (K9109) - Hartensteiner Strasse (K9109) - Hartensteiner Strasse (K9109) + Hartensteiner Strasse (K9109) + in Wildbach rechts abbiegen auf Hartensteiner Strasse (K9109) - links abbiegen auf Silberbachstrasse - Silberbachstrasse - Silberbachstrasse + Silberbachstrasse + links abbiegen auf Silberbachstrasse - geradeaus weiter auf Zechenplatz - Zechenplatz - Zechenplatz + Zechenplatz + geradeaus weiter auf Zechenplatz - in Schlema geradeaus weiter auf Schneeberger Weg - Schneeberger Weg - Schneeberger Weg + Schneeberger Weg + in Schlema geradeaus weiter auf Schneeberger Weg - links abbiegen auf Zechenplatz - Zechenplatz - Zechenplatz + Zechenplatz + links abbiegen auf Zechenplatz - rechts abbiegen auf Friedensstrasse - Friedensstrasse - Friedensstrasse + Friedensstrasse + rechts abbiegen auf Friedensstrasse - rechts abbiegen auf B169 Kobaltstrasse/Auer Strasse - B169 Kobaltstrasse/Auer Strasse - B169 Kobaltstrasse/Auer Strasse + B169 Kobaltstrasse/Auer Strasse + rechts abbiegen auf B169 Kobaltstrasse/Auer Strasse - in Schneeberg rechts abbiegen auf B169 Kobaltstrasse - B169 Kobaltstrasse - B169 Kobaltstrasse + B169 Kobaltstrasse + in Schneeberg rechts abbiegen auf B169 Kobaltstrasse - in Hundshübel halb rechts halten auf B169 Hauptstrasse - B169 Hauptstrasse - B169 Hauptstrasse + B169 Hauptstrasse + in Hundshübel halb rechts halten auf B169 Hauptstrasse - in Stützengrün rechts abbiegen auf B169 Auerbacher Strasse - B169 Auerbacher Strasse - B169 Auerbacher Strasse + B169 Auerbacher Strasse + in Stützengrün rechts abbiegen auf B169 Auerbacher Strasse - in Rodewisch rechts abbiegen auf B169 Postplatz - B169 Postplatz - B169 Postplatz + B169 Postplatz + in Rodewisch rechts abbiegen auf B169 Postplatz - links abbiegen auf B169 Postplatz - B169 Postplatz - B169 Postplatz + B169 Postplatz + links abbiegen auf B169 Postplatz - bei D 08228 Rodewisch - B169\Lindenstrasse - B169\Lindenstrasse + B169\Lindenstrasse + bei D 08228 Rodewisch + bei D 08228 Rodewisch - bei D 08209 Auerbach - B169\Göltzschtalstrasse - B169\Göltzschtalstrasse + B169\Göltzschtalstrasse + bei D 08209 Auerbach + bei D 08209 Auerbach - in Auerbach/Vogtl. links abbiegen auf B169 Göltzschtalstrasse - B169 Göltzschtalstrasse - B169 Göltzschtalstrasse + B169 Göltzschtalstrasse + in Auerbach/Vogtl. links abbiegen auf B169 Göltzschtalstrasse - in Ellefeld links abbiegen auf Neuberg - Neuberg - Neuberg + Neuberg + in Ellefeld links abbiegen auf Neuberg - rechts abbiegen auf Neuberg - Neuberg - Neuberg + Neuberg + rechts abbiegen auf Neuberg - rechts abbiegen auf Beerheider Strasse (K7833) - Beerheider Strasse (K7833) - Beerheider Strasse (K7833) + Beerheider Strasse (K7833) + rechts abbiegen auf Beerheider Strasse (K7833) - rechts abbiegen auf Beerheider Strasse (K7833) - Beerheider Strasse (K7833) - Beerheider Strasse (K7833) + Beerheider Strasse (K7833) + rechts abbiegen auf Beerheider Strasse (K7833) - bei D 08209 Auerbach/Beerheide - K7833\Rempesgrüner Strasse - K7833\Rempesgrüner Strasse + K7833\Rempesgrüner Strasse + bei D 08209 Auerbach/Beerheide + bei D 08209 Auerbach/Beerheide - in Beerheide links abbiegen auf Strasse des Friedens (K7826) - Strasse des Friedens (K7826) - Strasse des Friedens (K7826) + Strasse des Friedens (K7826) + in Beerheide links abbiegen auf Strasse des Friedens (K7826) - in Hohengrün rechts abbiegen auf Klingenthaler Strasse (S300) - Klingenthaler Strasse (S300) - Klingenthaler Strasse (S300) + Klingenthaler Strasse (S300) + in Hohengrün rechts abbiegen auf Klingenthaler Strasse (S300) - links abbiegen + RPT184 + links abbiegen - links abbiegen auf Schallerbachstrasse (K7822) - Schallerbachstrasse (K7822) - Schallerbachstrasse (K7822) + Schallerbachstrasse (K7822) + links abbiegen auf Schallerbachstrasse (K7822) - in Brunn rechts abbiegen auf Schönheider Strasse (S278) - Schönheider Strasse (S278) - Schönheider Strasse (S278) + Schönheider Strasse (S278) + in Brunn rechts abbiegen auf Schönheider Strasse (S278) - in Schönheide halb rechts halten auf Hauptstrasse (S278) - Hauptstrasse (S278) - Hauptstrasse (S278) + Hauptstrasse (S278) + in Schönheide halb rechts halten auf Hauptstrasse (S278) - D 08304 Schönheide - S278\Hauptstrasse - S278\Hauptstrasse + S278\Hauptstrasse + D 08304 Schönheide + D 08304 Schönheide - halb links halten auf Hauptstrasse (S278) - Hauptstrasse (S278) - Hauptstrasse (S278) + Hauptstrasse (S278) + halb links halten auf Hauptstrasse (S278) - geradeaus weiter auf Eibenstocker Strasse (S277) - Eibenstocker Strasse (S277) - Eibenstocker Strasse (S277) + Eibenstocker Strasse (S277) + geradeaus weiter auf Eibenstocker Strasse (S277) - rechts abbiegen auf B283 Muldenstrasse - B283 Muldenstrasse - B283 Muldenstrasse + B283 Muldenstrasse + rechts abbiegen auf B283 Muldenstrasse - halb rechts halten auf Am Filz - Am Filz - Am Filz + Am Filz + halb rechts halten auf Am Filz - geradeaus weiter auf B283 Schönheider Strasse - B283 Schönheider Strasse - B283 Schönheider Strasse + B283 Schönheider Strasse + geradeaus weiter auf B283 Schönheider Strasse - bei D 08262 Tannenbergsthal/Jägersgrün - B283\Schönheider Strasse - B283\Schönheider Strasse + B283\Schönheider Strasse + bei D 08262 Tannenbergsthal/Jägersgrün + bei D 08262 Tannenbergsthal/Jägersgrün - bei D 08262 Tannenbergsthal - B283\Klingenthaler Strasse - B283\Klingenthaler Strasse + B283\Klingenthaler Strasse + bei D 08262 Tannenbergsthal + bei D 08262 Tannenbergsthal - in Klingenthal/Sa. links abbiegen auf B283 Auerbacher Strasse - B283 Auerbacher Strasse - B283 Auerbacher Strasse + B283 Auerbacher Strasse + in Klingenthal/Sa. links abbiegen auf B283 Auerbacher Strasse - rechts abbiegen auf Mittelbergstrasse - Mittelbergstrasse - Mittelbergstrasse + Mittelbergstrasse + rechts abbiegen auf Mittelbergstrasse - rechts abbiegen auf Falkensteiner Strasse (S304) - Falkensteiner Strasse (S304) - Falkensteiner Strasse (S304) + Falkensteiner Strasse (S304) + rechts abbiegen auf Falkensteiner Strasse (S304) - bei D 08248 Klingenthal/Brunndöbra - S304\Falkensteiner Strasse - S304\Falkensteiner Strasse + S304\Falkensteiner Strasse + bei D 08248 Klingenthal/Brunndöbra + bei D 08248 Klingenthal/Brunndöbra - bei D 08223 Grünbach-Muldenberg - S302/S304 - S302/S304 + S302/S304 + bei D 08223 Grünbach-Muldenberg + bei D 08223 Grünbach-Muldenberg - halb links halten auf S304 - S304 - S304 + S304 + halb links halten auf S304 - bei D 08223 Grünbach - S304\Bahnhofstrasse - S304\Bahnhofstrasse + S304\Bahnhofstrasse + bei D 08223 Grünbach + bei D 08223 Grünbach - in Grünbach links abbiegen auf Neustädter Strasse (K7835) - Neustädter Strasse (K7835) - Neustädter Strasse (K7835) + Neustädter Strasse (K7835) + in Grünbach links abbiegen auf Neustädter Strasse (K7835) - links abbiegen auf Siehdichfürer Strasse (K7835) - Siehdichfürer Strasse (K7835) - Siehdichfürer Strasse (K7835) + Siehdichfürer Strasse (K7835) + links abbiegen auf Siehdichfürer Strasse (K7835) - in Neudorf links abbiegen auf Schönecker Strasse (S301) - Schönecker Strasse (S301) - Schönecker Strasse (S301) + Schönecker Strasse (S301) + in Neudorf links abbiegen auf Schönecker Strasse (S301) - links abbiegen auf Schönecker Strasse (S301) - Schönecker Strasse (S301) - Schönecker Strasse (S301) + Schönecker Strasse (S301) + links abbiegen auf Schönecker Strasse (S301) - bei D 08261 Schöneck - S301 - S301 + S301 + bei D 08261 Schöneck + bei D 08261 Schöneck - in Schöneck/Vogtl. rechts abbiegen auf Falkensteiner Strasse (S301/S302) - Falkensteiner Strasse (S301/S302) - Falkensteiner Strasse (S301/S302) + Falkensteiner Strasse (S301/S302) + in Schöneck/Vogtl. rechts abbiegen auf Falkensteiner Strasse (S301/S302) - links abbiegen auf Albertplatz/Falkensteiner Strasse (S301/S302) - Albertplatz/Falkensteiner Strasse (S301/S302) - Albertplatz/Falkensteiner Strasse (S301/S302) + Albertplatz/Falkensteiner Strasse (S301/S302) + links abbiegen auf Albertplatz/Falkensteiner Strasse (S301/S302) - rechts abbiegen auf Klingenthaler Strasse (S301) - Klingenthaler Strasse (S301) - Klingenthaler Strasse (S301) + Klingenthaler Strasse (S301) + rechts abbiegen auf Klingenthaler Strasse (S301) - einfahren in Kreisverkehr + RPT211 + einfahren in Kreisverkehr - 2. Möglichkeit aus Kreisverkehr ausfahren auf Kärnerstrasse (S305) - Kärnerstrasse (S305) - Kärnerstrasse (S305) + Kärnerstrasse (S305) + 2. Möglichkeit aus Kreisverkehr ausfahren auf Kärnerstrasse (S305) - rechts abbiegen auf B283 - B283 - B283 + B283 + rechts abbiegen auf B283 - bei D 08258 Markneukirchen/Friebus - B283 - B283 + B283 + bei D 08258 Markneukirchen/Friebus + bei D 08258 Markneukirchen/Friebus - rechts abbiegen auf B283 - B283 - B283 + B283 + rechts abbiegen auf B283 - in Siebenbrunn geradeaus weiter auf Am Bahnhof - Am Bahnhof - Am Bahnhof + Am Bahnhof + in Siebenbrunn geradeaus weiter auf Am Bahnhof - links abbiegen auf Strässler Berg - Strässler Berg - Strässler Berg + Strässler Berg + links abbiegen auf Strässler Berg - geradeaus weiter auf Siebenbrunner Strasse - Siebenbrunner Strasse - Siebenbrunner Strasse + Siebenbrunner Strasse + geradeaus weiter auf Siebenbrunner Strasse - in Strässel links abbiegen auf Böhmische Strasse (K7846) - Böhmische Strasse (K7846) - Böhmische Strasse (K7846) + Böhmische Strasse (K7846) + in Strässel links abbiegen auf Böhmische Strasse (K7846) - in Schönlind rechts abbiegen auf Markneukirchner Strasse (K7843) - Markneukirchner Strasse (K7843) - Markneukirchner Strasse (K7843) + Markneukirchner Strasse (K7843) + in Schönlind rechts abbiegen auf Markneukirchner Strasse (K7843) - links abbiegen auf Landwüster Strasse (K7846) - Landwüster Strasse (K7846) - Landwüster Strasse (K7846) + Landwüster Strasse (K7846) + links abbiegen auf Landwüster Strasse (K7846) - in Landwüst halb rechts halten auf Schönlinder Strasse (K7844) - Schönlinder Strasse (K7844) - Schönlinder Strasse (K7844) + Schönlinder Strasse (K7844) + in Landwüst halb rechts halten auf Schönlinder Strasse (K7844) - rechts abbiegen auf Rauner Strasse (K7844) - Rauner Strasse (K7844) - Rauner Strasse (K7844) + Rauner Strasse (K7844) + rechts abbiegen auf Rauner Strasse (K7844) - bei D 08258 Landwüst - K7844\Rauner Strasse - K7844\Rauner Strasse + K7844\Rauner Strasse + bei D 08258 Landwüst + bei D 08258 Landwüst - geradeaus weiter auf B92/E49 - B92/E49 - B92/E49 + B92/E49 + geradeaus weiter auf B92/E49 - bei D 08626 Adorf/Jugelsburg - B92/E49 - B92/E49 + B92/E49 + bei D 08626 Adorf/Jugelsburg + bei D 08626 Adorf/Jugelsburg - bei D 08626 Adorf - B92/E49\Oelsnitzer Strasse - B92/E49\Oelsnitzer Strasse + B92/E49\Oelsnitzer Strasse + bei D 08626 Adorf + bei D 08626 Adorf - halb links halten + RPT228 + halb links halten - geradeaus weiter auf B92/E49 Adorfer Strasse - B92/E49 Adorfer Strasse - B92/E49 Adorfer Strasse + B92/E49 Adorfer Strasse + geradeaus weiter auf B92/E49 Adorfer Strasse - halb links halten + RPT230 + halb links halten - rechts abbiegen + RPT231 + rechts abbiegen - links abbiegen auf B92/E49 Adorfer Strasse - B92/E49 Adorfer Strasse - B92/E49 Adorfer Strasse + B92/E49 Adorfer Strasse + links abbiegen auf B92/E49 Adorfer Strasse - in Oelsnitz links abbiegen auf Rosa-Luxemburg-Strasse (S311) - Rosa-Luxemburg-Strasse (S311) - Rosa-Luxemburg-Strasse (S311) + Rosa-Luxemburg-Strasse (S311) + in Oelsnitz links abbiegen auf Rosa-Luxemburg-Strasse (S311) - links abbiegen auf Grabenstrasse (S311) - Grabenstrasse (S311) - Grabenstrasse (S311) + Grabenstrasse (S311) + links abbiegen auf Grabenstrasse (S311) - links abbiegen auf Kirchplatz (S311) - Kirchplatz (S311) - Kirchplatz (S311) + Kirchplatz (S311) + links abbiegen auf Kirchplatz (S311) - rechts abbiegen auf Heppeplatz (S311) - Heppeplatz (S311) - Heppeplatz (S311) + Heppeplatz (S311) + rechts abbiegen auf Heppeplatz (S311) - links abbiegen auf Bahnhofstrasse (S307) - Bahnhofstrasse (S307) - Bahnhofstrasse (S307) + Bahnhofstrasse (S307) + links abbiegen auf Bahnhofstrasse (S307) - rechts abbiegen auf Talsperrenstrasse (S310) - Talsperrenstrasse (S310) - Talsperrenstrasse (S310) + Talsperrenstrasse (S310) + rechts abbiegen auf Talsperrenstrasse (S310) - rechts abbiegen auf Talsperrenstrasse (K7854) - Talsperrenstrasse (K7854) - Talsperrenstrasse (K7854) + Talsperrenstrasse (K7854) + rechts abbiegen auf Talsperrenstrasse (K7854) - bei D 08606 Planschwitz - K7854\Oelsnitzer Strasse - K7854\Oelsnitzer Strasse + K7854\Oelsnitzer Strasse + bei D 08606 Planschwitz + bei D 08606 Planschwitz - in Planschwitz links abbiegen auf Talsperrenstrasse (K7854) - Talsperrenstrasse (K7854) - Talsperrenstrasse (K7854) + Talsperrenstrasse (K7854) + in Planschwitz links abbiegen auf Talsperrenstrasse (K7854) - links abbiegen + RPT242 + links abbiegen - in Bösenbrunn rechts abbiegen auf S310 - S310 - S310 + S310 + in Bösenbrunn rechts abbiegen auf S310 - links abbiegen auf S310 - S310 - S310 + S310 + links abbiegen auf S310 - in Dröda rechts abbiegen auf Hauptstrasse/Bobenneukirchener Strasse (S310) - Hauptstrasse/Bobenneukirchener Strasse (S310) - Hauptstrasse/Bobenneukirchener Strasse (S310) + Hauptstrasse/Bobenneukirchener Strasse (S310) + in Dröda rechts abbiegen auf Hauptstrasse/Bobenneukirchener Strasse (S310) - halb rechts halten auf Bobenneukirchener Strasse (S310) - Bobenneukirchener Strasse (S310) - Bobenneukirchener Strasse (S310) + Bobenneukirchener Strasse (S310) + halb rechts halten auf Bobenneukirchener Strasse (S310) - bei D 08538 Burgstein/Dröda - S310\Bobenneukirchener Strasse - S310\Bobenneukirchener Strasse + S310\Bobenneukirchener Strasse + bei D 08538 Burgstein/Dröda + bei D 08538 Burgstein/Dröda - in Pirk rechts abbiegen auf B173 Hofer Strasse - B173 Hofer Strasse - B173 Hofer Strasse + B173 Hofer Strasse + in Pirk rechts abbiegen auf B173 Hofer Strasse - links abbiegen auf Zur Pirkmühle (K7859) - Zur Pirkmühle (K7859) - Zur Pirkmühle (K7859) + Zur Pirkmühle (K7859) + links abbiegen auf Zur Pirkmühle (K7859) - bei D 08538 Burgstein/Pirk - K7859 - K7859 + K7859 + bei D 08538 Burgstein/Pirk + bei D 08538 Burgstein/Pirk - in Geilsdorf links abbiegen auf Winkel (K7859) - Winkel (K7859) - Winkel (K7859) + Winkel (K7859) + in Geilsdorf links abbiegen auf Winkel (K7859) - in Schwand links abbiegen auf Weischlitzer Strasse (K7859) - Weischlitzer Strasse (K7859) - Weischlitzer Strasse (K7859) + Weischlitzer Strasse (K7859) + in Schwand links abbiegen auf Weischlitzer Strasse (K7859) - halb rechts halten auf Weischlitzer Strasse (K7859) - Weischlitzer Strasse (K7859) - Weischlitzer Strasse (K7859) + Weischlitzer Strasse (K7859) + halb rechts halten auf Weischlitzer Strasse (K7859) - bei D 08538 Burgstein/Kemnitz - K7859 - K7859 + K7859 + bei D 08538 Burgstein/Kemnitz + bei D 08538 Burgstein/Kemnitz - links abbiegen auf Kemnitzer Strasse - Kemnitzer Strasse - Kemnitzer Strasse + Kemnitzer Strasse + links abbiegen auf Kemnitzer Strasse - in Krebes rechts abbiegen auf Burgsteinstrasse (K7860) - Burgsteinstrasse (K7860) - Burgsteinstrasse (K7860) + Burgsteinstrasse (K7860) + in Krebes rechts abbiegen auf Burgsteinstrasse (K7860) - geradeaus weiter + RPT257 + geradeaus weiter - links abbiegen + RPT258 + links abbiegen - in Heinersgrün halb links halten auf An der Kapelle (K7855) - An der Kapelle (K7855) - An der Kapelle (K7855) + An der Kapelle (K7855) + in Heinersgrün halb links halten auf An der Kapelle (K7855) - rechts abbiegen + RPT260 + rechts abbiegen - geradeaus weiter auf B173 - B173 - B173 + B173 + geradeaus weiter auf B173 - bei D95032 Hof + bei D95032 Hof + bei D95032 Hof + bei D95032 Hof diff --git a/gpsbabel/tef_xml.c b/gpsbabel/tef_xml.c index dbc58ea3f..70d9d0dfd 100644 --- a/gpsbabel/tef_xml.c +++ b/gpsbabel/tef_xml.c @@ -26,17 +26,18 @@ #include "defs.h" #include "xmlgeneric.h" -static waypoint *wpt_tmp = NULL; -static int item_count = -1; -static int waypoints = 0; - +static waypoint *wpt_tmp; +static int item_count; +static int waypoints; +static double version; static route_head *route = NULL; static char *routevia = NULL; static arglist_t tef_xml_args[] = { - {"routevia", &routevia, "Include only via stations in route", NULL, ARGTYPE_BOOL, ARG_NOMINMAX}, + {"routevia", &routevia, "Include only via stations in route", + NULL, ARGTYPE_BOOL, ARG_NOMINMAX}, ARG_TERMINATOR }; @@ -56,19 +57,32 @@ tef_xml_read(void) #else +static char * +trimmed_strdup(const char *str) +{ + char *c1, *c2, *res; + + c1 = xstrdup(str); + c2 = lrtrim(c1); + if (*c2) res = xstrdup(c2); + else res = NULL; + xfree(c1); + return res; +} + static xg_callback tef_start, tef_header, tef_list_start, tef_list_end; static xg_callback tef_item_start, tef_point, tef_item_end; static xg_tag_mapping tef_xml_map[] = { { tef_start, cb_start, "/TEF" }, - { tef_header, cb_start, "/TEF/Header" }, - { tef_list_start, cb_start, "/TEF/WaypointList" }, - { tef_item_start, cb_start, "/TEF/WaypointList/Item" }, - { tef_point, cb_start, "/TEF/WaypointList/Item/Point" }, - { tef_item_end, cb_end, "/TEF/WaypointList/Item" }, - { tef_list_end, cb_end, "/TEF/WaypointList" }, - { NULL, 0, NULL } + { tef_header, cb_start, "/TEF/Header" }, + { tef_list_start, cb_start, "/TEF/WaypointList" }, + { tef_item_start, cb_start, "/TEF/WaypointList/Item" }, + { tef_point, cb_start, "/TEF/WaypointList/Item/Point" }, + { tef_item_end, cb_end, "/TEF/WaypointList/Item" }, + { tef_list_end, cb_end, "/TEF/WaypointList" }, + { NULL, 0, NULL } }; @@ -81,192 +95,200 @@ tef_start(const char *args, const char **attrv) { int valid = 0; const char **avp = &attrv[0]; - while (*avp) - { - if (strcmp(avp[0], "Comment") == 0) - { - if (0 == strcmp(avp[1], "TourExchangeFormat")) valid = 1; - } - avp+=2; - } - if (!valid) - { - fatal(MYNAME ": error in source file.\n"); + + while (*avp) { + if (0 == case_ignore_strcmp(avp[0], "Comment")) { + if (0 == case_ignore_strcmp(avp[1], "TourExchangeFormat")) + valid = 1; + } + else if (0 == case_ignore_strcmp(avp[0], "Version")) + version = atof(avp[1]); + avp+=2; } + if (!valid) + fatal(MYNAME ": Error in source file.\n"); } /* * tef_header: "Name" > Route name, "Software" > Route descr. */ -void +static void tef_header(const char *args, const char **attrv) { const char **avp = &attrv[0]; route = route_head_alloc(); - while (*avp) - { - if (strcmp(avp[0], "Name") == 0) - { - route->rte_name = xstrdup(avp[1]); - } - else if (strcmp(avp[0], "Software") == 0) - { - route->rte_desc = xstrdup(avp[1]); - } - avp+=2; + while (*avp) { + if (case_ignore_strcmp(avp[0], "Name") == 0) + route->rte_name = trimmed_strdup(avp[1]); + else if (case_ignore_strcmp(avp[0], "Software") == 0) + route->rte_desc = trimmed_strdup(avp[1]); + avp+=2; } route_add_head(route); } -/* - * - */ - -void +static void tef_list_start(const char *args, const char **attrv) { const char **avp = &attrv[0]; - while (*avp) - { - if (strcmp(avp[0], "ItemCount") == 0) - { - sscanf(avp[1], "%d", &item_count); - } - avp+=2; - } + while (*avp) { + if (strcmp(avp[0], "ItemCount") == 0) + sscanf(avp[1], "%d", &item_count); + avp+=2; + } } -/* - * local procedure for waypoint handling +/* in "TourExchangeFormat" the following can happen: + * + * SegDescription="L34\Wittlicher Strasse" + * PointDescription="Wittlicher Strasse ( " + * + * fix_notes tries to create a new PointDescription, which + * should be "Wittlicher Strasse (L34)" for the example above */ - -void waypoint_final() + +static char * +fix_notes(const char *name, char *notes) +{ + char *cleft, *cright, *cback, *ctmp; + + if ((! name) || (! notes)) return notes; + + /* do we have a BACKSLASH in shortname ? */ + cback = strchr(name, '\\'); + if ((! cback) || (cback == name)) return notes; + + /* do we have left, but no right parenthesis in notes ? */ + if (! (cleft = strchr(notes, '('))) return notes; + cright = strchr(notes, ')'); + if (cright && (cright > cleft)) return notes; + + /* now contruct the new name */ + ctmp = lrtrim(xstrndup(notes, cleft - notes)); + xfree(notes); + xasprintf(¬es, "%s (%*.*s)", ctmp, cback - name, cback - name, name); + xfree(ctmp); + + return notes; +} + +static void +waypoint_final() { int via; if (wpt_tmp == NULL) return; via = wpt_tmp->microseconds; wpt_tmp->microseconds = 0; - + + if (version < 2) { /* keep the old behaviour */ + wpt_tmp->notes = wpt_tmp->description; + wpt_tmp->description = NULL; + } + + wpt_tmp->notes = fix_notes(wpt_tmp->shortname, wpt_tmp->notes); + if (via != 0) - waypt_add(wpt_tmp); - - if (route != NULL) - { - if ((via != 0) || (routevia == NULL)) - { - waypoint *wpt = waypt_dupe(wpt_tmp); - route_add_wpt(route, wpt); - } + waypt_add(wpt_tmp); + + if (route != NULL) { + if ((via != 0) || (routevia == NULL)) { + waypoint *wpt = waypt_dupe(wpt_tmp); + route_add_wpt(route, wpt); + } } - + if (via == 0) - waypt_free(wpt_tmp); - + waypt_free(wpt_tmp); + wpt_tmp = NULL; } -void +static void tef_item_end(const char *args, const char **unused) { waypoint_final(); } -/* - * - */ - -void +static void tef_list_end(const char *args, const char **unused) { waypoint_final(); if (waypoints != item_count) - { - fatal(MYNAME ": waypoint count differs to internal \"ItemCount\"! (%d to %d)\n", waypoints, item_count); - } + fatal(MYNAME ": waypoint count differs to internal \"ItemCount\"! (%d to %d)\n", + waypoints, item_count); } -/* - * - */ - -void +static void tef_item_start(const char *args, const char **attrv) { const char **avp = &attrv[0]; - wpt_tmp = waypt_new(); - - if ((waypoints == 1) || (waypoints == item_count)) - wpt_tmp->microseconds++; - waypoints++; - + + wpt_tmp = waypt_new(); + if ((waypoints == 1) || (waypoints == item_count)) + wpt_tmp->microseconds++; + while (*avp) { - if (0 == strcmp(avp[0], "PointDescription")) - { - wpt_tmp->shortname = xstrdup(avp[1]); - } - if (0 == strcmp(avp[0], "SegDescription")) - { - wpt_tmp->description = xstrdup(avp[1]); - } - if ((0 == strcmp(avp[0], "ViaStation")) && (0 == strcmp(avp[1], "true"))) - { - wpt_tmp->microseconds = 1; - } - avp+=2; + if (0 == case_ignore_strcmp(avp[0], "SegDescription")) + wpt_tmp->shortname = trimmed_strdup(avp[1]); + else if (0 == case_ignore_strcmp(avp[0], "PointDescription")) + wpt_tmp->description = trimmed_strdup(avp[1]); + else if ((0 == case_ignore_strcmp(avp[0], "ViaStation")) && + (0 == case_ignore_strcmp(avp[1], "true"))) + wpt_tmp->microseconds = 1; /* only a flag */ + + /* new in TEF V2 */ + else if (0 == case_ignore_strcmp(avp[0], "Instruction")) + wpt_tmp->description = trimmed_strdup(avp[1]); + else if (0 == case_ignore_strcmp(avp[0], "Altitude")) + wpt_tmp->altitude = atof(avp[1]); + else if (0 == case_ignore_strcmp(avp[0], "TimeStamp")) + /* nothing for the moment */; + + avp+=2; } } -/* - * - */ - -void +static void tef_point(const char *args, const char **attrv) { - const char **avp = &attrv[0]; + const char **avp = &attrv[0]; char *comma; if (!wpt_tmp) return; - while (*avp) - { - if (strcmp(avp[0], "y") == 0) - { - comma = strstr(avp[1], ","); - if (comma) *comma='.'; - sscanf(avp[1], "%lf", &wpt_tmp->latitude); - } - else if (strcmp(avp[0], "x") == 0) - { - comma = strstr(avp[1], ","); - if (comma) *comma='.'; - sscanf(avp[1], "%lf", &wpt_tmp->longitude); - } - avp+=2; - } + while (*avp) { + if (strcmp(avp[0], "y") == 0) { + comma = strstr(avp[1], ","); + if (comma) *comma='.'; + sscanf(avp[1], "%lf", &wpt_tmp->latitude); + } + else if (strcmp(avp[0], "x") == 0) { + comma = strstr(avp[1], ","); + if (comma) *comma='.'; + sscanf(avp[1], "%lf", &wpt_tmp->longitude); + } + avp+=2; + } } -/* - * - */ - static void tef_xml_rd_init(const char *fname) { + wpt_tmp = NULL; + waypoints = 0; + item_count = -1; + version = 1.5; + xml_init(fname, tef_xml_map, NULL); } -/* - * - */ - static void tef_xml_read(void) { @@ -275,11 +297,7 @@ tef_xml_read(void) #endif -/* - * - */ - -void +static void tef_xml_rd_deinit(void) { xml_deinit(); -- 2.30.2